<?php

require_once dirname(__FILE__).'/../lib/stageGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/stageGeneratorHelper.class.php';

/**
 * stage actions.
 *
 * @package    tfe
 * @subpackage stage
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class stageActions extends autoStageActions {
    public function executeAutocomplete(sfWebRequest $request) {
        $this->getResponse()->setContentType('application/json');
        $request = Doctrine::getTable('Stage')->createQuery()
                ->where("libelle LIKE ?","%".$request->getParameter('q')."%")
                ->limit($request->getParameter('limit'))
                ->execute()
                ->getData();

        $stages = array();
        foreach ( $request as $stage ) {
            $stages[$stage->id] = (string) $stage;
        }
        return $this->renderText(json_encode($stages));

    }

    // utile pour que les actions batch respecten le softDelete
    protected function executeBatchDelete(sfWebRequest $request) {
        $ids = $request->getParameter('ids');

        $records = Doctrine_Query::create()
                ->select()
                ->from('Stage')
                ->whereIn('id', $ids)
                ->execute();

        $count = 0;
        foreach($records as $record) {
            $count += $record->delete();
        }

        if ($count >= count($ids)) {
            $this->getUser()->setFlash('notice', 'The selected items have been deleted successfully.');
        }
        else {
            $this->getUser()->setFlash('error', 'A problem occurs when deleting the selected items.');
        }

        $this->redirect('@stage');
    }


    // creation d'un fichier CSV contenant noms + mails des participants aux stages séléctionnés
    protected function executeBatchCsvMails(sfWebRequest $request) {
        // creation d'un nom unique de fichier sur base d'un hashage de la concaténation du nom d'utilisateur et d'un timestamp
        // puis appelle à la méthode objet
        $filename = sha1($this->getUser().date('ymd').time()).'.csv';
        Stage::createCsvMails($request->getParameter('ids'),$filename);

        // redirection vers telechargement du fichier CSV genere
        $this->redirect('CSV/mails?filename='.$filename);
    }

    // creation d'un fichier CSV contenant noms + adresses des participants aux stages séléctionnés
    protected function executeBatchCsvLettres(sfWebRequest $request) {
        // creation d'un nom unique de fichier sur base d'un hashage de la concaténation du nom d'utilisateur et d'un timestamp
        // puis appelle à la méthode objet
        $filename = sha1($this->getUser().date('ymd').time()).'.csv';
        Stage::createCsvLettres($request->getParameter('ids'),$filename);

        // redirection vers telechargement du fichier CSV genere
        $this->redirect('CSV/lettres?filename='. $filename);
    }
}
